package com.until.util.pojo;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 
 * </p>
 *
 * @author xwd
 * @since 2020-12-26
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class TSalesOrderItem implements Serializable {

    private static final long serialVersionUID=1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 销售单id
     */
    @TableField("sales_order_id")
    private Integer salesOrderId;

    /**
     * 平台原始订单号
     */
    @TableField("origin_order_no")
    private String originOrderNo;

    /**
     * 平台原始子订单号
     */
    @TableField("origin_sub_order_no")
    private String originSubOrderNo;

    /**
     * 平台sku ID
     */
    @TableField("origin_sku_id")
    private String originSkuId;

    /**
     * 平台sku名称
     */
    @TableField("origin_sku_name")
    private String originSkuName;

    /**
     * 平台商品ID
     */
    @TableField("origin_product_id")
    private String originProductId;

    /**
     * 平台商品名字
     */
    @TableField("origin_product_name")
    private String originProductName;

    /**
     * 平台订单里面指定的外部系统sku ID
     */
    @TableField("origin_outer_sku_id")
    private String originOuterSkuId;

    /**
     * 平台订单里面指定的外部系统sku 名称
     */
    @TableField("origin_outer_sku_name")
    private String originOuterSkuName;

    /**
     * 平台订单里面指定的外部系统商品 ID
     */
    @TableField("origin_outer_product_id")
    private String originOuterProductId;

    /**
     * 平台订单里面指定的外部系统商品名称
     */
    @TableField("origin_outer_product_name")
    private String originOuterProductName;

    /**
     * 鲲驰商品编号
     */
    @TableField("sku_code")
    private String skuCode;

    /**
     * 鲲驰商品名称
     */
    @TableField("sku_name")
    private String skuName;

    /**
     * 原始子订单状态
     */
    @TableField("origin_sub_order_status")
    private String originSubOrderStatus;

    /**
     * 数量
     */
    @TableField("num")
    private Integer num;

    /**
     * 应发数
     */
    @TableField("shipment_num")
    private Integer shipmentNum;

    /**
     * 已发数
     */
    @TableField("delivery_num")
    private Integer deliveryNum;

    /**
     * 子单状态；UN_PAY(10,"未付款"),
PAYED(20,"已付款"),
DELIVERING(30, "发货中"),
PART_DELIVERED(35, "部分已发货"),
DELIVERED(45, "全部已发货"),
FINISHED(50, "已完成"),
CLOSE(0, "交易关闭");

     */
    @TableField("status")
    @TableLogic
    private Integer status;

    /**
     * 商品标题
     */
    @TableField("title")
    private String title;

    /**
     * 退款单ID
     */
    @TableField("refund_no")
    private String refundNo;

    /**
     * 退款状态；NONE(0,"无退款"),
APPLY_REFUND(10,"买家已经申请退款，等待卖家同意"),
REVIEWING(20,"卖家已经同意退款，等待买家退货"),
REFUSED(30,"买家已经退货，等待卖家确认收货"),
CLOSE_REFUND(40,"卖家拒绝退款"),
CLOSED(50,"退款关闭"),
SUCCESS_REFUND(60,"退款完成");

     */
    @TableField("refund_status")
    private Integer refundStatus;

    /**
     * 子订单发货时间，当卖家对订单进行了多次发货，子订单的发货时间和主订单的发货时间可能不一样了，那么就需要以子订单的时间为准。
     */
    @TableField("consign_time")
    private LocalDateTime consignTime;

    /**
     * 子订单的交易结束时间说明：子订单有单独的结束时间，与主订单的结束时间可能有所不同，在有退款发起的时候或者是主订单分阶段付款的时候，子订单的结束时间会早于主订单的结束时间，所以开放这个字段便于订单结束状态的判断
     */
    @TableField("end_time")
    private LocalDateTime endTime;

    /**
     * 实付费
     */
    @TableField("payment")
    private BigDecimal payment;

    /**
     * 邮费
     */
    @TableField("post_fee")
    private BigDecimal postFee;

    /**
     * 折扣金额
     */
    @TableField("discount_fee")
    private BigDecimal discountFee;

    /**
     * 税费
     */
    @TableField("tax_fee")
    private BigDecimal taxFee;

    /**
     * 应付费
     */
    @TableField("total_fee")
    private BigDecimal totalFee;

    /**
     * 结算金额
     */
    @TableField("receivable")
    private BigDecimal receivable;

    /**
     * 商品单价
     */
    @TableField("price")
    private BigDecimal price;

    /**
     * 是否有效
     */
    @TableField("del")
    private Boolean del;

    /**
     * 创建时间
     */
    @TableField("create_date")
    private LocalDateTime createDate;

    /**
     * 更新时间
     */
    @TableField("update_date")
    private LocalDateTime updateDate;

    /**
     * 运单号
     */
    @TableField("logistics_no")
    private String logisticsNo;

    /**
     * 物流公司编码
     */
    @TableField("logistics_code")
    private String logisticsCode;

    /**
     * 物流公司名称
     */
    @TableField("logistics_name")
    private String logisticsName;

    /**
     * 订单的发货仓编码
     */
    @TableField("delivery_warehouse_code")
    private String deliveryWarehouseCode;

    /**
     * 订单发货仓名字
     */
    @TableField("delivery_warehouse_name")
    private String deliveryWarehouseName;

    /**
     * 备注
     */
    @TableField("remark")
    private String remark;

    /**
     * 退款数量
     */
    @TableField("refund_num")
    private Integer refundNum;

    /**
     * 是否赠品 0 否  1 是
     */
    @TableField("is_gift")
    private Boolean isGift;


}
